草庐IT

Java ASN.1 编译器

全部标签

c++ - 是否可以在编译时检查类型是否派生自模板的某些实例化?

我想编写一个模板函数,如果传递的类型是从另一个类的任何模板实例派生的,则它以一种方式运行,否则以另一种方式运行。我认为下面的代码捕捉到了我想做的事情。不幸的是,Caller为double和Derived打印“generic”。#includetemplatestructBase{};structDerived:publicBase{};templatevoidFoo(constT&){std::coutvoidFoo(constBase&){std::cout"voidCaller(constT&t){Foo(t);}intmain(){doublex;Caller(x);Derive

c++ - 我如何摆脱 glu.h 中的这些编译器错误?

尝试使用这个tutorial在带有netbeans和cygwin4.8.1的64位Windows8上。我收到很多这样的错误:/usr/include/w32api/GL/glu.h:68:79:error:expected‘)’before‘*’token.关于这样的语句:voidAPIENTRYgluQuadricCallback(GLUquadric*qobj,GLenumwhich,void(CALLBACK*fn)());错误消息上的指针指向fn()之前的*。编辑:包含windef.h可消除编译器错误消息。我留下了一堆undefinedreference,例如:glfwInit

c++ - 无法运行bjam编译boost python教程

我正在尝试关注thistutorial关于为Windows的python包装C++代码。我安装了python。下载了最新版本的boost(1_55)。首先我运行bootstrap.bat来构建bjam.exe。接下来,我配置了boost_1_55_0\tools\build\v2\user-config.jam使用msvc10编译器并添加了python安装路径。现在,基于教程:Nowweareready...Besuretocdtolibs/python/example/tutorialwherethetutorial"hello.cpp"andthe"Jamroot"issituat

c++ - 如何为模板方法实现编译时 foreach()?

我想实现一个编译时的foreach(),它可以调用给定的模板成员函数N次。目前我有我的编译时间foreach:structForEach{templatestructIntToType{};typedefIntToTypeForEachDoNotTerminateLoop;typedefIntToTypeForEachTerminateLoop;templatestaticvoidForEachImpl(ForEachDoNotTerminateLoop,TMethodmethod){method.Invoke();ForEachImpl(Internal::IntToType(),m

c++ - 如何在 Qt 中提供编译器选项?

我正在尝试学习Qt,我有文件test.cpp,我使用以下命令通过终端运行它:g++`pkg-config--cflags--libslibsbml`test.cpp-L/usr/local/lib-lsbml-lstdc++-lm如何向Qt提供相同的选项?谢谢。 最佳答案 您可以在下面编写qmake代码段。简而言之,您需要查看以下qmake变量:LIBSINCLUDEPATHTEMPLATETARGETHEADERSSOURCESCONFIGPKGCONFIG测试.proTEMPLATE=appTARGET=testINCLUDEP

c++ - g++ (4.7.2) 错误或功能,在编译时初始化静态数组时?

好的,所以我试图通过在编译时初始化一堆constexprstaticintconst数组来做一些聪明的事情。尽管运行时性能完全不受初始化这些数组的控制,但这似乎是一个有趣的小练习。我写了一个测试设置看看是否可行,我最终能够做到这一点:structTest{constexprstaticintconstarray[10]=Array::array;};constexprintconstTest::array[10];intmain(){cout这里,Array有一个名为array的静态成员,它包含10个int,从0开始,其中每个后续元素的值由名为Increment(即{0,1,...,9

c++ - C++程序如何获得debug/release条件编译

在大型C++/Qt/QMake/qtcreator项目中,我想执行一些测试,但仅当我使用调试标志进行编译时。有没有办法告诉g++代码的某些小部分只能在Debug模式下编译? 最佳答案 执行此操作的标准方法是依赖宏NDEBUG,由宏assert()使用在中定义:#ifdefNDEBUG//releasemodecode#else//debugmodecode#endif#ifdef的反义词是#ifndef,当然还有#else分支是可选的。如果此宏不起作用(无论出于何种原因),您可以试试宏QT_NO_DEBUG,Qt将其用于与Q_ASS

c++ - 为什么依赖的应用程序要使用与动态库相同的编译器?

最近我不得不编译Qt,说明中清楚地提到我的应用程序应该使用与我编译Qt时使用的相同的编译器进行编译。现在我不明白这是为什么,想知道这是特定于Qt还是通用C++的东西? 最佳答案 简介Objectfilesandstaticlibrariescreatedwithdifferentcompilers,orevenwithsignificantlydifferentreleasesofthesamecompiler,oftencannotbelinkedtogether.ThisissueisnotspecifictoMinGW:man

c++ - 使用 g++ 的 OpenGL 代码中的编译问题

这个问题在这里已经有了答案:'glCreateShader'wasnotdeclaredinthisscope?(3个答案)关闭8年前。当我尝试使用以下命令使用gcc编译用c语言编写的opengl代码时,它运行良好:gcc-Walltutorial10.c-lGL-lglut-lGLU但是当我尝试使用g++进行相同的编译时g++-Walltutorial10.c-lGL-lglut-lGLU它开始出现很多这样的错误:tutorial10.c:Infunction‘voiddrawRect()’:tutorial10.c:28:34:error:‘glClearBufferfv’wasn

c++ - 如何允许用户重新配置编译器以与 cmake 一起使用?

我想让用户运行一个cmake配置工具(例如ccmake或cmake-gui)来更改使用的编译器。这是必要的,因为我正在构建一个有时在集群上运行的跨平台程序(因此需要具有适当MPI构造的特定于集群的编译器)但有时在非MPI模式下运行。让我们假设编译器通常可以是平台期望的任何编译器(通常是gcc/g++或在最坏的情况下是MSVC),但是当我们使用MPI时,我们总是知道我们需要通过mpicc/mpicxx进行编译。我觉得下面的代码应该可以工作:cmake_minimum_required(VERSION2.4)option(USE_MPI"IsthisonanMPIsystem?"OFF)i